/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.bs.Beans;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Bone
 */
@Entity
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Pessoa.findAll", query = "SELECT p FROM Pessoa p")})
public class Pessoa implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(nullable = false)
    private Integer id;
    @Basic(optional = false)
    @Column(nullable = false, length = 150)
    private String nome;
    @Basic(optional = false)
    @Column(nullable = false)
    private char tipo;
    @Column(length = 250)
    private String email;
    @Column(length = 250)
    private String site;
    private Character cliente;
    private Character fornecedor;
    private Character colaborador;
    private Character convenio;
    private Character contador;
    private Character transportadora;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<LancamentoPagar> lancamentoPagarList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<EmpresaPessoa> empresaPessoaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<Cliente> clienteList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<Transportadora> transportadoraList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<CompensacaoTituloCab> compensacaoTituloCabList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<Sindicato> sindicatoList;
    @OneToMany(mappedBy = "idPessoa")
    private List<Endereco> enderecoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<Fornecedor> fornecedorList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<PessoaFisica> pessoaFisicaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<PessoaJuridica> pessoaJuridicaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<OperadoraPlanoSaude> operadoraPlanoSaudeList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<Colaborador> colaboradorList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<Socio> socioList;
    @OneToMany(mappedBy = "idPessoa")
    private List<EmitenteCheque> emitenteChequeList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<Convenio> convenioList;
    @OneToMany(mappedBy = "idPessoa")
    private List<TransferenciaTituloCab> transferenciaTituloCabList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<LancamentoReceber> lancamentoReceberList;
    @OneToMany(mappedBy = "idPessoa")
    private List<Contato> contatoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<Contador> contadorList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<DavCabecalho> davCabecalhoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa")
    private List<PreVendaCabecalho> preVendaCabecalhoList;

    public Pessoa() {
    }

    public Pessoa(Integer id) {
        this.id = id;
    }

    public Pessoa(Integer id, String nome, char tipo) {
        this.id = id;
        this.nome = nome;
        this.tipo = tipo;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public char getTipo() {
        return tipo;
    }

    public void setTipo(char tipo) {
        this.tipo = tipo;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getSite() {
        return site;
    }

    public void setSite(String site) {
        this.site = site;
    }

    public Character getCliente() {
        return cliente;
    }

    public void setCliente(Character cliente) {
        this.cliente = cliente;
    }

    public Character getFornecedor() {
        return fornecedor;
    }

    public void setFornecedor(Character fornecedor) {
        this.fornecedor = fornecedor;
    }

    public Character getColaborador() {
        return colaborador;
    }

    public void setColaborador(Character colaborador) {
        this.colaborador = colaborador;
    }

    public Character getConvenio() {
        return convenio;
    }

    public void setConvenio(Character convenio) {
        this.convenio = convenio;
    }

    public Character getContador() {
        return contador;
    }

    public void setContador(Character contador) {
        this.contador = contador;
    }

    public Character getTransportadora() {
        return transportadora;
    }

    public void setTransportadora(Character transportadora) {
        this.transportadora = transportadora;
    }

    @XmlTransient
    public List<LancamentoPagar> getLancamentoPagarList() {
        return lancamentoPagarList;
    }

    public void setLancamentoPagarList(List<LancamentoPagar> lancamentoPagarList) {
        this.lancamentoPagarList = lancamentoPagarList;
    }

    @XmlTransient
    public List<EmpresaPessoa> getEmpresaPessoaList() {
        return empresaPessoaList;
    }

    public void setEmpresaPessoaList(List<EmpresaPessoa> empresaPessoaList) {
        this.empresaPessoaList = empresaPessoaList;
    }

    @XmlTransient
    public List<Cliente> getClienteList() {
        return clienteList;
    }

    public void setClienteList(List<Cliente> clienteList) {
        this.clienteList = clienteList;
    }

    @XmlTransient
    public List<Transportadora> getTransportadoraList() {
        return transportadoraList;
    }

    public void setTransportadoraList(List<Transportadora> transportadoraList) {
        this.transportadoraList = transportadoraList;
    }

    @XmlTransient
    public List<CompensacaoTituloCab> getCompensacaoTituloCabList() {
        return compensacaoTituloCabList;
    }

    public void setCompensacaoTituloCabList(List<CompensacaoTituloCab> compensacaoTituloCabList) {
        this.compensacaoTituloCabList = compensacaoTituloCabList;
    }

    @XmlTransient
    public List<Sindicato> getSindicatoList() {
        return sindicatoList;
    }

    public void setSindicatoList(List<Sindicato> sindicatoList) {
        this.sindicatoList = sindicatoList;
    }

    @XmlTransient
    public List<Endereco> getEnderecoList() {
        return enderecoList;
    }

    public void setEnderecoList(List<Endereco> enderecoList) {
        this.enderecoList = enderecoList;
    }

    @XmlTransient
    public List<Fornecedor> getFornecedorList() {
        return fornecedorList;
    }

    public void setFornecedorList(List<Fornecedor> fornecedorList) {
        this.fornecedorList = fornecedorList;
    }

    @XmlTransient
    public List<PessoaFisica> getPessoaFisicaList() {
        return pessoaFisicaList;
    }

    public void setPessoaFisicaList(List<PessoaFisica> pessoaFisicaList) {
        this.pessoaFisicaList = pessoaFisicaList;
    }

    @XmlTransient
    public List<PessoaJuridica> getPessoaJuridicaList() {
        return pessoaJuridicaList;
    }

    public void setPessoaJuridicaList(List<PessoaJuridica> pessoaJuridicaList) {
        this.pessoaJuridicaList = pessoaJuridicaList;
    }

    @XmlTransient
    public List<OperadoraPlanoSaude> getOperadoraPlanoSaudeList() {
        return operadoraPlanoSaudeList;
    }

    public void setOperadoraPlanoSaudeList(List<OperadoraPlanoSaude> operadoraPlanoSaudeList) {
        this.operadoraPlanoSaudeList = operadoraPlanoSaudeList;
    }

    @XmlTransient
    public List<Colaborador> getColaboradorList() {
        return colaboradorList;
    }

    public void setColaboradorList(List<Colaborador> colaboradorList) {
        this.colaboradorList = colaboradorList;
    }

    @XmlTransient
    public List<Socio> getSocioList() {
        return socioList;
    }

    public void setSocioList(List<Socio> socioList) {
        this.socioList = socioList;
    }

    @XmlTransient
    public List<EmitenteCheque> getEmitenteChequeList() {
        return emitenteChequeList;
    }

    public void setEmitenteChequeList(List<EmitenteCheque> emitenteChequeList) {
        this.emitenteChequeList = emitenteChequeList;
    }

    @XmlTransient
    public List<Convenio> getConvenioList() {
        return convenioList;
    }

    public void setConvenioList(List<Convenio> convenioList) {
        this.convenioList = convenioList;
    }

    @XmlTransient
    public List<TransferenciaTituloCab> getTransferenciaTituloCabList() {
        return transferenciaTituloCabList;
    }

    public void setTransferenciaTituloCabList(List<TransferenciaTituloCab> transferenciaTituloCabList) {
        this.transferenciaTituloCabList = transferenciaTituloCabList;
    }

    @XmlTransient
    public List<LancamentoReceber> getLancamentoReceberList() {
        return lancamentoReceberList;
    }

    public void setLancamentoReceberList(List<LancamentoReceber> lancamentoReceberList) {
        this.lancamentoReceberList = lancamentoReceberList;
    }

    @XmlTransient
    public List<Contato> getContatoList() {
        return contatoList;
    }

    public void setContatoList(List<Contato> contatoList) {
        this.contatoList = contatoList;
    }

    @XmlTransient
    public List<Contador> getContadorList() {
        return contadorList;
    }

    public void setContadorList(List<Contador> contadorList) {
        this.contadorList = contadorList;
    }

    @XmlTransient
    public List<DavCabecalho> getDavCabecalhoList() {
        return davCabecalhoList;
    }

    public void setDavCabecalhoList(List<DavCabecalho> davCabecalhoList) {
        this.davCabecalhoList = davCabecalhoList;
    }

    @XmlTransient
    public List<PreVendaCabecalho> getPreVendaCabecalhoList() {
        return preVendaCabecalhoList;
    }

    public void setPreVendaCabecalhoList(List<PreVendaCabecalho> preVendaCabecalhoList) {
        this.preVendaCabecalhoList = preVendaCabecalhoList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Pessoa)) {
            return false;
        }
        Pessoa other = (Pessoa) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.bs.Beans.Pessoa[ id=" + id + " ]";
    }
    
}
